/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package testjena;

import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.util.FileManager;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;

/**
 *
 * @author Mauricio
 */
public class Jena {

    static void CargarOntologia()
    {
        OntModel model = null;

        // crear un modelo utilizando como razonador OWL_MEM_RULE_INF
        model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_RULE_INF );

        // abrir el archivo con la ontología
        java.io.InputStream in = FileManager.get().open("C:\\Documents and Settings\\Mauricio\\Mis documentos\\NetBeansProjects\\TestJena\\onto.owl");
        if (in == null) {
            throw new IllegalArgumentException("Archivo no encontrado");
        }

        // leer el archivo RDF/XML
        model.read(in, "");

        //
        // El siguiente código muestra un listado con las clases e instancias existentes en el modelo
        //
        System.out.println( "Clases/Instancias");
        System.out.println( "=================");
        ExtendedIterator iteratorClasses = model.listClasses();
        while ( iteratorClasses.hasNext() ){
            OntClass ontClass = (OntClass) iteratorClasses.next();
            System.out.println( ontClass );

            ExtendedIterator iteratorInstances = ontClass.listInstances();
            while ( iteratorInstances.hasNext() ){
           System.out.println( "\t"+iteratorInstances.next() );
            }
            System.out.println("");
        }

    }

}
